Apparatus program &amp; method for data property recognition

ABSTRACT

A data property recognition apparatus, includes a storage unit; a model data acquisition processor acquiring a plurality of model sets of data entries, each data entry individually representing an identified property common to the model set and being of a data type common to the model set; a feature vector generation processor receiving an input set of data entries, recognizing a data type common to the input set of data entries from among a plurality of supported data types, selecting a set of statistical characteristics representing the input set of data entries in dependence upon the recognised data type, generating a value of each of the selected set of statistical characteristics from the input set of data entries, and outputting a feature vector composed of the generated values of statistical characteristics.

CROSS-REFERENCE TO RELATED APPLICATION

The application is based upon and claims the benefit of priority of prior German patent application no. 102016220771.7, filed Oct. 21, 2016, the entirety of which is herein incorporated by reference.

FIELD

This application lies in the field of data science, and in particular relates to the automation of reconciliation of data entries from multiple data sources.

BACKGROUND

Data scientists spend time organizing and cleaning data, which time could be better-spent on procedures such as modelling or data mining. Standardization bodies, such as the World Wide Web Consortium (W3C), have worked for many years on proposing formats and best practices to facilitate data publication and sharing. However, not all data providers publish their data according to standards. Moreover, most standards focus on the syntax of the data model and forget about the data semantics. This often results in semantic interoperability problems when data from different sources are exchanged and merged, e.g. when two datasets refer to the same data property using different names.

The identification of data properties in a dataset it is complex and time-consuming when proper metadata is not available.

SUMMARY

Embodiments include a data property recognition apparatus, comprising: a storage unit; a model data acquisition processor, configured to acquire a plurality of model sets of data entries, each individual model set of data entries being a plurality of data entries individually representing an identified property common to the model set of data entries and being of a data type common to the model set of data elements; a feature vector generation processor configured to receive an input set of data entries, to recognise a data type common to the input set of data entries from among a plurality of supported data types, to select a set of statistical characteristics representing the input set of data entries in dependence upon the recognised data type, to generate a value of each of the selected set of statistical characteristics from the input set of data entries, and to output a feature vector composed of the generated values of statistical characteristics; the model data acquisition processor being configured, for each of the acquired plurality of model sets of data entries, to submit the model set of data entries to the feature vector generation processor as an input set of data entries, to obtain the feature vector output by the feature vector generation processor, and to submit to the storage unit the feature vector in association with the identified property common to the model set of data entries; the storage unit being configured to store the submitted feature vectors in association with the respective identified property, as a reference set of feature vectors for comparison with a feature vector output by the feature vector generation processor for a query set of data entries for which an identity of a property commonly represented by the individual data entries is sought.

Advantageously, the data property recognition apparatus provides a repository of feature vectors which can be used to automate the recognition of data property identity in data sets. Therefore, combining data entries from multiple heterogeneous data sources (i.e. with different schema) can be performed with a reduced level of manual interaction. A feature vector is a unique representation of a data property, similar to a fingerprint for a human. The feature vector may be referred to as a data property fingerprint, because it provides a unique identifier for an identified data property. An identified data property is an attribute of a dataset, database, or data source. The purpose of the repository of feature vectors is to automate data property recognition based on data entry values with minimum input from humans.

The sets of data entries may be entries from labelled columns in a relational database, so that each column entries are acquired as a set of data entries, and the label identifies the property which the data entries commonly individually represent. Alternatively or additionally, the sets of data entries may be elements stored as objects in a graph database, with the objects being linked in the graph to subject entities by arcs sharing a common label, the common label identifying the property which the data entries commonly represent.

Rather than relying on semantic analysis of labels for properties in heterogeneous data sources, the reference set of feature vectors stored by the storage unit provides a means for statistical comparison of data behaviour in order to compare two sets of data entries, and to determine whether or not they are data entries representing the same properties. It is not necessary that the entities are the same—the data property recognition apparatus leverages the assumption that sets of data entries representing the same property, whether for the same, overlapping, or non-overlapping entities, will be better-matched in terms of statistical characteristics, than one of those sets of data entries will be matched with sets of data entries representing different properties.

The model sets of data entries are referred to as model to indicate that the relation between data entries and the property represented by the entries is to be replicated in data from other sources. That is to say, the relation between the semantic content of the identified property and the data entries is a model to which data sets from other sources can be compared and/or conformed.

Optionally, the data property recognition apparatus further comprises: a query processor, the query processor being configured to obtain a query set of data entries for which an identity of a property commonly represented by the individual data entries is sought, to submit the query set of data entries to the feature vector generation processor, to execute comparisons between the output feature vector and the stored reference set of feature vectors to identify a best match feature vector among the stored reference set of feature vectors for the output feature vector, to recognise the identified property stored in association with the best match feature vector as a recognised data property represented by the individual data entries in the query set of data entries, and to output the recognised data property.

Advantageously, the query processor is a mechanism to leverage the reference set of feature vectors to reconcile the query set of data entries with a set of data entries for which a feature vector appears in the reference set. The reconciliation in this context may be considered as an alignment of schema: by finding a best match between a feature vector generated for the query set of data entries and the feature vectors in the reference set, an identified property from among those stored in association with the reference set of feature vectors is recognised as an identified property to assign or attribute to the query set of data entries.

The output recognised data property may be output to a storage unit (for example, the storage unit in which the reference set of feature vectors is stored) for storage in association with the query set of feature vectors.

Embodiments including the query processor automate the process of recognising which data property is represented by the data entries in a set of data entries.

In particular, the query processor may be configured to submit to the storage unit the query set of data entries and the recognised data property; the storage unit being configured to store the query set of data entries in association with the recognised data property as a recognised set of data entries. Furthermore, the storage unit is configured to store the reference set of feature vectors in association with the respective identified property and in association with the respective model set of data entries for which the feature vector was generated.

Advantageously, the storage unit stores both the query set of data entries, and one (or more) of the model set of data entries in association with the same identified property. The data entries from the data source from which the model set of data entries were acquired and the data entries from the data source from which the query set of data entries were acquired are therefore stored in a reconciled manner in the storage unit.

Embodiments may also include a reference feature vector update processor, configured, upon submission of the recognised set of data entries stored in the storage unit, to compile a composite set of data entries comprising each of the reference set of data entries and each of the other recognised sets of data entries stored in association with the same identified property as the submitted recognised set of data entries, submitting the composite set of data entries to the feature vector generation processor, obtaining the feature vector output by the feature vector generation processor as an updated reference feature vector, and replacing the existing feature vector in the reference set of feature vectors stored in association with the identified property with the updated reference feature vector.

Advantageously, the updating of the feature vectors improves the quality of recognition with use of the reference set of feature vectors for recognition.

Optionally, the executed comparisons are between the output feature vector and each of the stored reference set of feature vectors, and the comparison comprises: comparing a data type of the set of data entries represented by the feature vector from the reference set with a data type of the query set of data entries represented by the output feature vector, and if the data types are different, excluding the feature vector from the reference set from mathematical comparison; and if the data types are the same, performing a mathematical comparison between the output feature vector and the feature vector from the reference set to obtain a similarity value; the feature vector for which the greatest similarity value is obtained being the best match feature vector.

The output feature vector is the feature vector generated for the query set of data entries. The composition of the feature vectors, that is, the statistical characteristics that they contain, may be peculiar to the data type, so that the feature vector may not explicitly specify a data type in order for the data type to be identifiable from the feature vector. Alternatively, it may be that the feature vector for a set of data entries does include an entry explicitly identifying the data type of the set of data entries.

Comparison of statistical characteristics within a feature vector is only executed between feature vectors representing sets of data entries of the same data type. Therefore, the comparison of data types can be considered to be a pre-processing step for the mathematical comparison.

The similarity value is the result of the mathematical comparison. The mathematical comparison may be, for example, a cosine distance comparison of the two feature vectors, generating a similarity value between 0 (minimum) and 1 (maximum).

Advantageously, the mathematical comparison of two vectors is a computationally efficient manner in which to compare two sets of data entries. The processing overhead of generating the feature vectors is repaid in the ease of comparison between the feature vector for the query set of data entries and the reference set of feature vectors. Therefore, embodiments are scalable over very large sets of reference vectors.

Composition of feature vectors in terms of statistical characteristics is dependent on implementation, and may be selected at design time, or by a user at run time via a user interface. Feature vectors may include data identifying which of the supported data types is the set of data entries for which the feature vector was generated. Embodiments may also store a record of, for each data type, which statistical characteristics are recorded in the feature vector and in which order. Such a record forms a feature vector schema.

Embodiments of another aspect include a data set reconciliation apparatus, comprising: a user interface to accept from a user a specification of a plurality of model sets of data entries from a first data source, and a specification of a plurality of query sets of data entries from further data sources; a data property recognition apparatus as defined in the claims, wherein the plurality of model sets of data entries and the plurality of model sets of data entries specified by the user, and further comprising: a data property reconciliation processor, configured to submit to the storage unit a copy of the first data source, and a copy of each of the further data sources, wherein the query sets of data entries for which a recognised data property was output by the query processor are stored in association with the respective recognised data property.

The data property reconciliation apparatus provides a mechanism for automating the reconciling of disparate heterogeneous data sources under a single reconciled schema. The storage unit becomes a data store which is accessible via a single access point, provided via a DBMS for the storage unit, and which processes access queries to the stored data utilising the single reconciled schema for the sets of data entries from the disparate data sources.

Embodiments of another aspect include a computer program which, when executed by a computing apparatus, causes the computing apparatus to function as a computing apparatus defined above as an invention embodiment.

Embodiments of another aspect include a method comprising: acquiring a plurality of model sets of data entries, each individual model set of data entries being a plurality of data entries individually representing an identified property common to the model set of data entries and being of a data type common to the model set of data elements, and for each of the acquired plurality of model sets of data entries as an input set of data entries, recognising a data type common to the input set of data entries from among plural supported data types, selecting a set of statistical characteristics representing the input set of data entries in dependence upon the recognised data type, generating a value of each of the selected set of statistical characteristics from the plurality of data entries, and outputting a feature vector composed of the generated values of statistical characteristics; for each of the acquired plurality of model sets of data entries, obtaining the output feature vector and submitting to the storage unit the output feature vector in association with the identified property common to the model set of data entries; storing the submitted feature vectors in association with the respective identified property, as a reference set of feature vectors for comparison with a feature vector generated for a query set of data entries for which an identity of a property commonly represented by the individual data entries is sought.

Embodiments of another aspect include a computer program which, when executed by a computing apparatus, causes the computing apparatus to perform a method defined above or elsewhere in this document as an invention embodiment.

Furthermore, embodiments of the present invention include a computer program or suite of computer programs, which, when executed by a plurality of interconnected computing devices, cause the plurality of interconnected computing devices to perform a method embodying the present invention.

Embodiments of the present invention also include a computer program or suite of computer programs, which, when executed by a plurality of interconnected computing devices, cause the plurality of interconnected computing devices to function as a computing apparatus defined above or elsewhere in this document as an invention embodiment.

BRIEF DESCRIPTION OF THE DRAWINGS

Preferred features of the present invention will now be described, purely by way of example, with reference to the accompanying drawings, in which:—

FIG. 1 illustrates a data property recognition apparatus;

FIG. 2 illustrates a data property recognition apparatus;

FIG. 3 illustrates a feature vector generation process;

FIG. 4 illustrates part of a data property recognition apparatus;

FIG. 5 illustrates a mapping between feature vectors and identified data properties;

FIG. 6 illustrates an example of a feature vector generation process; and

FIG. 7 illustrates a hardware configuration of embodiments.

DETAILED DESCRIPTION

FIG. 1 illustrates a data property recognition apparatus 10 of an embodiment. The data property recognition apparatus 10 comprises a model data acquisition processor 12, a feature vector generation processor 14, and a storage unit 16.

The model data acquisition processor is configured to acquire a plurality of model sets of data entries, each individual model set of data entries being a plurality of data entries individually representing an identified property common to the model set of data entries and being of a data type common to the model set of data entries. The plurality of model sets of data entries may be from a single data source, with the schema of the single data source identifying the property represented by the individual data values in each set. The illustrated line in FIG. 1 from the exterior of the data property recognition apparatus 10 to the model data acquisition processor 12 represents the import (acquiring) of model sets of data entries from a data source by the model data acquisition processor 12.

The model data acquisition processor 12 is configured to access a data source in which the plurality of model sets of data entries are respectively stored, to read the plurality of sets of data entries and schema identifying a property represented by the individual data values in each set, and submit the read data to the feature vector generation processor 14 and/or the storage unit 16 for processing. The illustrated line linking the model data acquisition processor 12 and the feature vector recognition processor 14 represents the submission of the model sets of data entries to the feature vector generation processor 14.

The identified property common to the model set of data entries may be a label for a column of data entries in a relational database or a label of commonly labelled edges in a graph database. In either case, the label may itself contain the semantic data (i.e. a string) defining the identified property, or may provide a link to an element of a knowledge model at which semantic data defining the identified property can be found. In either case, the property is identified, whether it be directly (by semantic data), or indirectly (via a link to a knowledge model element containing the semantic data). Either the link or the explicit label may be acquired by the model data acquisition processor 12 as the identified property.

A user may specify to the model data acquisition processor a data source or subset of data within a data source to acquire as the plurality of model sets of data entries. A prerequisite is that there are sufficient data entries in each set for statistical characteristics to be calculated by the feature vector generator processor 14. For example, a minimum number of data entries may be imposed by the model data acquisition processor 12, wherein if a set of data entries to be acquired has below the minimum number, a warning is issued to the user and/or the set of data entries is not acquired. The minimum number may be, for example, 2, 5, 10, 50, 100 or 200.

A further prerequisite is that the data entries in each model set of data entries are of a common data type, and that the data type is one of defined list. Depending on the implementation, either the model data acquisition processor 12 or the feature vector generation processor 14 may be responsible for rejecting (i.e. excluding from further processing and removing from the storage unit 16) any sets of data entries that are not of a common data type and of a data type other than from the defined list of supported data types. The defined list of supported data types is: numeric, string, and numerical time-series. The specific format can vary within the specified type, so that, for example, numerical may be single-precision floating point format, double-precision floating point format, integers, decimals, etc. Numerical time-series data entries are tuples comprising a numeric value and a time/date value. String data entries are a single value, as are numeric data entries.

The feature vector generation processor 14 only proceeds to generate a feature vector for input sets of data entries that are of a common data type and specifically are of a common data type from the defined list of supported data types.

The feature vector generation processor 14 is configured to receive an input set of data entries, to recognise the data type common to the set of data entries from among plural supported data types, to select a set of statistical characteristics representing the input set of data entries in dependence upon the recognised data type, to generate a value of each of the selected set of statistical characteristics from the plurality of data entries, and to output a feature vector composed of the generated values of statistical characteristics, the plural supported data types comprising numbers, strings, and numerical time-series.

The model data acquisition processor 12 is further configured, for each of the acquired plurality of model sets of data entries, to submit the model set of data entries to the feature vector generation processor 14 as an input set of data entries, to obtain the feature vector output by the feature vector generation processor 14, and to submit to the storage unit 16 the feature vector in association with the identified property common to the model set of data entries. The illustrated line joining the feature vector generation processor 14 and the storage unit 16 represents the submission of the feature vector to the storage unit.

The feature vector generation processor 14 includes processing logic for generating values for statistical characteristics from input sets of data entries. The statistical characteristics of which values are to be included in a feature vector for a set of data entries is dependent upon the data type of the data entries. Hence, the selection of which processing logic, that is to be executed by the feature vector generation processor in transforming the input set of data entries into a feature vector composed of values of a selected set of statistical characteristics, is dependent upon the data type of the data entries.

The feature vector generation processor 14 takes a list of data entries (which may also be referred to as data values or data entry values) belonging to any of supported types (numbers, strings, numerical time-series) and creates a feature vector. A feature vector contains a value for each one of a set of statistical characteristics of the data entries representing an identified data property. The membership of the individual sets of statistical characteristics is detailed below.

The set of statistical characteristics for an input set of data entries recognised as being of the number type, comprises two or more from among the following:

-   -   number of data entries;     -   minimum value;     -   maximum value;     -   first quartile value;     -   third quartile value;     -   median value;     -   mean;     -   standard deviation;     -   variance;     -   most repeated data entry.

The set of statistical characteristics for an input set of data entries recognised as being of the string type, comprises two or more from among the following:

-   -   number of data entries;     -   alphabet of data entries;     -   average number of characters per data entry;     -   average number of white spaces per data entry;     -   average number of full stops per data entry;     -   average number of commas per data entry;     -   average number of semicolons per data entry;     -   most repeated data entry;     -   longest common substring;     -   percentage of unique entries.

The set of statistical characteristics for an input set of data values recognised as being of the string type, comprises two or more from among the following:

-   -   number of data values;     -   number of entries;     -   minimum numerical value;     -   maximum numerical value;     -   first quartile numerical value;     -   third quartile numerical value;     -   median numerical value;     -   mean of numerical values;     -   standard deviation;     -   variance;     -   covariance;     -   skewness;     -   kurtosis;     -   start date;     -   end date.

The membership of the set of statistical characteristics for a data type is respectively fixed per-implementation, so that in a particular data property recognition apparatus operating on a particular task, project, or group of data sources, the feature vector generation processor 14 is configured to generate values of the same statistical characteristics for input data sets of a given data type. In this manner, the feature vectors for the data type are comparable in the implementation.

FIG. 3 is a schematic representation of the functionality of the feature vector generation processor. An initial step of the procedure followed by the feature vector generation processor 14 is to identify the data type of the values in a set of data entries input to the feature vector generator. Algorithms are available for this initial step. Once the data type among the plurality of supported data types is identified, processing logic for calculating the statistical characteristics belonging to the set of statistical characteristics for the identified data type is executed, and the output stored in a feature vector for storage in association with an identification of the property represented by the entries in the input data set.

Once the reference set of feature vectors are generated and stored in the storage unit 16, they are utilised to automate the recognition of a data property represented by data entries in a query set of data entries. Upon recognition, the query set is submitted to the data storage for storage as a recognised set of data entries in association with an identification of the recognised data property.

The feature vector generation processor may further comprise a reference feature vector update processor, configured, upon submission of the recognised set of data entries stored in the storage unit, to compile a composite set of data entries comprising each of the reference set of data entries and each of the other recognised sets of data entries stored in association with the same identified property as the submitted recognised set of data entries, submitting the composite set of data entries to the feature vector generation processor as an input set of data entries, obtaining the feature vector output by the feature vector generation processor as an updated reference feature vector, and replacing the existing feature vector in the reference set of feature vectors stored in association with the identified property with the updated reference feature vector

The feature vectors generated by the feature vector generation processor 14 for the plurality of model sets of data entries serve as a basis for comparison with data sets for which an identity of a data property represented by the component data entries is sought. Therefore, it may be that the plurality of model sets of data entries are selected by a user, for example, wishing to replicate the schema of the plurality of model sets of data entries in other data sources of unknown or unidentifiable schema.

The storage unit 16 is configured to store the submitted feature vectors in association with the respective identified property. In addition, and in association with the feature vector and the respective identified property (identified explicitly or via a link to a knowledge base element), the storage unit 16 may store the set of data entries for which the feature vector was generated, for example, in the form they appear in the data source from which they are acquired. The set of data entries and the respective identified property may be submitted to the storage by the model data acquisition processor, so that when the feature vector has been generated and output by the feature vector generation processor 14, it can be associated with the set of data entries and the respective identified property in the storage unit 16.

Thus, the storage unit 16 is functional as a repository for storing feature vectors that store a statistical representation or fingerprint of a set of data entries, in association with an identified property that is represented by the data entries. The feature vectors are functional as a reference set of feature vectors for comparison with a feature vector output by the feature vector generation processor for a query set of data entries for which an identity of a property commonly represented by the individual data entries is sought. A property commonly represented by the individual data entries in such a query set of data entries may be sought because it is unknown, or because the schema of the data source from which the query set of data entries is acquired is undesirable to an apparatus user, for example, because it is heterogeneous with a required or model data schema. Inconsistencies in semantic expression between sets of data entries from disparate data sources is overcome, by comparing sets of data based on statistical features rather than semantic expression of a property represented by the data entries.

As illustrated in FIG. 4, a dedicated data property mapper 161 may store the associations between feature vectors and identified property.

The model data acquisition processor 12 may utilise the storage unit 16 for temporary storage of acquired data sets whilst waiting to submit the acquired data sets to the feature vector generator processor 14.

FIG. 2 illustrates an embodiment. In FIG. 2, the data property recognition apparatus 10 is as described with relation to FIG. 1, and further comprises a query processor 18. The query processor 18 is configured to obtain a query set of data entries for which an identity of a property commonly represented by the individual data entries is sought, to submit the query set of data entries to the feature vector generation processor, to execute comparisons between the output feature vector and the stored reference set of feature vectors to identify a best match feature vector among the stored reference set of feature vectors for the output feature vector, to recognise the identified property stored in association with the best match feature vector as a recognised data property represented by the individual data entries in the query set of data entries, and to output the recognised data property.

The query processor 18 is a mechanism that utilises the reference set of feature vectors stored by the storage unit 16 in order to provide an automated process for recognising a data property represented by a query set of data entries. The scope for recognition is limited to data property identities associated with reference sets of data entries of the same data type as the query set. Hence, the data property recognition apparatus 10 is of enhanced effectiveness if the property represented by entries in the query set is a property represented by entries from a model set of data entries.

A user of the apparatus may specify one or more data sources, and optionally subsets of data entries within those data sources, that are to be obtained and processed by the query processor. For example, the user may wish to reconcile several disparate data sources, and is able to identify one of those data sources as having a schema according to which the reconciled data is to be stored. The data of the identified one of the data sources is acquired and processed by the model data acquisition processor, and the schema stored as identified properties associated with respective members of the reference set of feature vectors in the storage unit 16. The remaining data sources, which may be partially or wholly overlapping with the identified one of the data sources in terms of either or both properties (columns in relational DB) and entities (rows in relational DB) represented, are then obtained and processed by the query processor. The query data set is stored in association with the recognised data property in the reconciled data set.

The apparatus of FIG. 2 may be included as part of a data set reconciliation apparatus, in which the query processor is used to obtain sets of data entries to be stored in the storage unit under the schema of the model sets of data entries. For example, there may be multiple data sources describing the same or overlapping properties of the same or overlapping entities as each other. The query processor is configured to submit to the storage unit the query set of data entries and the respective recognised data property, and the storage unit is configured to store the query set of data entries in association with the recognised data property as a recognised set of data entries. The model set of data entries and the recognised set of data entries stored in association with the same identified property are reconciled in the storage unit by virtue of their respective associations with the same identified property.

FIG. 3 illustrates a data storage arrangement in embodiments. The embodiment illustrated in FIG. 3 is an extension of the FIG. 1 & FIG. 2 embodiments. The data acquisition processor 12 is omitted from illustration in FIG. 3, but is included in the embodiment. Optionally, the query processor may also be included.

FIG. 4 illustrates a particular data storage arrangement in which a dedicated data property mapper 161 stores the associations between feature vectors in the storage unit 16 and identified data properties. The data property mapper 161 links each feature vector to an identification of the data property represented by the data entries in the set of data entries for which the feature vector was generated. The identification may be an explicit definition in the storage unit 16, or may be an external knowledge representation. The external knowledge representation may be a concept represented in a data graph.

The data property mapper 161 handles the relationship between a feature vector and an identification of the property that is represented by the data entries for which the feature vector was generated. The property is a named concept that semantically represents the data content, as exemplified in FIG. 5. The relationship stored by the data property mapper 161 represents a semantic annotation of the feature vector. The relationship may be mapped by a user via a user interface. Alternatively, the identification of the property may be a label read from the data source from which the respective model set of data values was acquired by the model data acquisition processor 12.

FIG. 5 illustrates the relationship between external knowledge model, mappings in the data property mapper 161, and feature vectors in the storage unit 16. The external knowledge model may be linked to via a URL (uniform resource locator) or URI (uniform resource identifier) that points to the concept within a knowledge model semantically describing the data property. If the knowledge model is not available online, the storage unit 16 may store the whole model as an RDF serialization, for example, in Turtle format. Thus, the link stored by the data property mapper may be to an external knowledge model or to a knowledge model stored by the storage unit 16.

FIG. 6 illustrates three examples of sets of data entries as they appear in the data source from which they are acquired, and the feature vector generated in each case. The table illustrates three different sets of data entries in a column labelled “Earnings per share”, one in a column labelled “Name”, and one in a column labelled “Closing price”. The feature vector generation processor 14 identifies the data type of the “Earnings per share” column as numeric, and calculates values for a set of statistical characteristics accordingly (number of data entries; minimum value; maximum value; first quartile value; third quartile value; median value; mean; standard deviation; variance; most repeated data entry). The feature vector generation processor 14 identifies the data type of the “Name” column as string, and calculates values for a set of statistical characteristics accordingly (number of data entries; alphabet of data entries; average number of characters per data entry; average number of white spaces per data entry; average number of full stops per data entry; average number of commas per data entry; average number of semicolons per data entry; most repeated data entry; longest common substring; percentage of unique entries). The feature vector generation processor 14 identifies the data type of the “Closing price” column as numerical time-series, and calculates values for a set of statistical characteristics accordingly (number of entries; minimum numerical value; maximum numerical value; first quartile numerical value; third quartile numerical value; median numerical value; mean of numerical values; standard deviation; variance; covariance; skewness; kurtosis; start date; end date). In each case, a link to a knowledge model is determined either by an automated process of searching based on the column heading, or by requesting input of a link to a knowledge model from a user via a user interface. Sample links are illustrated.

FIG. 7 illustrates a hardware configuration of an embodiment. In the example of FIG. 7, the hardware is a computing apparatus. Methods embodying the present invention may be carried out on a computing device such as that illustrated in FIG. 7. Such a computing device need not have every component illustrated in FIG. 7, and may be composed of a subset of those components. A method embodying the present invention may be carried out by a single computing device in communication with one or more data storage servers via a network, the data storage servers operating as the storage unit 16. The computing device may be a data storage itself storing the reference feature vectors and other data stored by the storage unit 16, that is to say, the computing device may include the storage unit 16.

A method embodying the present invention may be carried out by a plurality of computing devices operating in cooperation with one another. One or more of the plurality of computing devices may be a data storage server storing at least a portion of the reference feature vectors and respective associated identified data properties and sets of data entries.

FIG. 7 is a block diagram of a computing apparatus, such as a data storage server, which embodies the present invention, and which may be used to implement a method of an embodiment. The computing device comprises processor hardware 993, and memory, 994. Optionally, the computing device also includes a network interface 997 for communication with other computing devices, for example with other computing devices of invention embodiments.

For example, an embodiment may be composed of a network of such computing devices. Optionally, the computing device also includes one or more input mechanisms such as keyboard and mouse 996, and a display unit such as one or more monitors 995. The components are connectable to one another via a bus 992.

The memory 994 may include a computer readable medium, which term may refer to a single medium or multiple media (e.g., a centralized or distributed database and/or associated caches and servers) configured to carry computer-executable instructions or have data structures stored thereon. Computer-executable instructions may include, for example, instructions and data accessible by and causing a general purpose computer, special purpose computer, or special purpose processing device (e.g., one or more processors) to perform one or more functions or operations. Thus, the term “computer-readable storage medium” may also include any medium that is capable of storing, encoding or carrying a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methods of the present disclosure. The term “computer-readable storage medium” may accordingly be taken to include, but not be limited to, solid-state memories, optical media and magnetic media. By way of example, and not limitation, such computer-readable media may include non-transitory computer-readable storage media, including Random Access Memory (RAM), Read-Only Memory (ROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), Compact Disc Read-Only Memory (CD-ROM) or other optical disk storage, magnetic disk storage or other magnetic storage devices, flash memory devices (e.g., solid state memory devices).

The processor hardware 993 is configured to control the computing device and execute processing operations, for example executing code stored in the memory to implement the various different functions of functional processors described here and in the claims. The memory 994 stores data being read and written by the processor hardware 993. As referred to herein, processor hardware may include one or more general-purpose processing devices such as a microprocessor, central processing unit, or the like. The processor hardware may include a complex instruction set computing (CISC) microprocessor, reduced instruction set computing (RISC) microprocessor, very long instruction word (VLIW) microprocessor, or processor hardware implementing other instruction sets or processors implementing a combination of instruction sets. The processor hardware may also include one or more special-purpose processing devices such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), network processor, or the like. In one or more embodiments, processor hardware is configured to execute instructions for performing the operations and steps discussed herein.

The display unit 997 may display a representation of data stored by the computing device and may also display a cursor and dialog boxes and screens enabling interaction between a user and the programs and data stored on the computing device. The input mechanisms 996 may enable a user to input data and instructions to the computing device.

The network interface (network I/F) 997 may be connected to a network, such as the Internet, and is connectable to other such computing devices via the network. The network I/F 997 may control data input/output from/to other apparatus via the network. Other peripheral devices such as microphone, speakers, printer, power supply unit, fan, case, scanner, trackerball etc may be included in the computing device.

The model data acquisition processor 12 of FIGS. 1 to 4 may be processor hardware 993 (or plurality thereof) executing processing instructions (a program) stored on a memory 994 and exchanging data via a network I/F 997. In particular, the processor hardware 993 executes processing instructions to receive, via the network I/F, a plurality of model sets of data entries from a data source external to the data property recognition apparatus and to process the acquired data by submitting the individual model sets of data entries to the feature vector generation processor, and receiving the resultant feature vectors. Furthermore, the processor hardware 993 may execute processing instructions to store the received feature vectors generated for the model sets of data entries on a connected storage unit 16 as a reference set of feature vectors.

The feature vector generation processor 14 of FIGS. 1 to 4 may be processor hardware 993 (or plurality thereof) executing processing instructions (a program) stored on a memory 994. In particular, the processor hardware 993 executes processing instructions to receive, from the model data acquisition processor, the reference feature vector update processor, or the query processor, an input set of data entries and transform the input set of data entries into a feature vector, as illustrated in FIG. 3, for example. Furthermore, the processor hardware 993 may execute processing instructions to respond to the functional processor from which the input set of data entries was received by outputting the generated feature vector either for storage on a connected storage unit 16 and/or for further processing, such as recognition processing by the query processor.

The storage unit 16 of FIGS. 1 to 4 is a single data storage device or multiple cooperating data storage devices, and includes a DBMS controlling read/write access operations. The storage unit 16 is configured to store the feature vectors, the associated identified properties, and the data entries from which the feature vectors were generated.

The query processor 18 of FIGS. 2 to 4 may be processor hardware 993 (or plurality thereof) executing processing instructions (a program) stored on a memory 994 and exchanging data via a network I/F 997. In particular, the processor hardware 993 executes processing instructions to receive, via the network I/F, a query set of data entries from a data source to be reconciled with the data source from which the model sets of data entries were acquired, to obtain a feature vector for the query set, and to compare the obtained feature vector with the reference set of feature vectors to find a best match. Furthermore, the processor 993 may execute processing instructions to store the query set of data entries on the connected storage unit 16 in association with the identified data property stored in association with the best match from among the reference set of feature vectors. 

1. A data property recognition apparatus, comprising: a storage unit; a model data acquisition processor, configured to acquire a plurality of model sets of data entries, each individual model set of data entries being a plurality of data entries individually representing an identified property common to the model set of data entries and being of a data type common to the model set of data elements; a feature vector generation processor configured to receive an input set of data entries, to recognise a data type common to the input set of data entries from among a plurality of supported data types, to select a set of statistical characteristics representing the input set of data entries in dependence upon the recognised data type, to generate a value of each of the selected set of statistical characteristics from the input set of data entries, and to output a feature vector composed of the generated values of statistical characteristics; the model data acquisition processor being configured, for each of the acquired plurality of model sets of data entries, to submit the model set of data entries to the feature vector generation processor as an input set of data entries, to obtain the feature vector output by the feature vector generation processor, and to submit to the storage unit the feature vector in association with the identified property common to the model set of data entries; and the storage unit being configured to store the submitted feature vectors in association with the respective identified property, as a reference set of feature vectors for comparison with a feature vector output by the feature vector generation processor for a query set of data entries for which an identity of a property commonly represented by the individual data entries is sought.
 2. The data property recognition apparatus according to claim 1, further comprising: a query processor, the query processor being configured to obtain a query set of data entries for which an identity of a property commonly represented by the individual data entries is sought, to submit the query set of data entries to the feature vector generation processor, to execute comparisons between the output feature vector and the stored reference set of feature vectors to identify a best match feature vector among the stored reference set of feature vectors for the output feature vector, to recognise the identified property stored in association with the best match feature vector as a data property represented by the individual data entries in the query set of data entries, and to output the recognised data property.
 3. The data property recognition apparatus according to claim 2, wherein the query processor is configured to submit to the storage unit the query set of data entries and the recognised data property, and the storage unit being configured to store the query set of data entries in association with the recognised data property as a recognised set of data entries.
 4. The data property recognition apparatus according to claim 3, wherein the storage unit is configured to store the reference set of feature vectors in association with the respective identified property and in association with the respective model set of data entries for which the feature vector was generated.
 5. The data property recognition apparatus according to claim 4, further comprising: a reference feature vector update processor, configured, upon submission of the recognised set of data entries stored in the storage unit, to compile a composite set of data entries comprising each of the reference set of data entries and each of the other recognised sets of data entries stored in association with the same identified property as the submitted recognised set of data entries, submitting the composite set of data entries to the feature vector generation processor, obtaining the feature vector output by the feature vector generation processor as an updated reference feature vector, and replacing the existing feature vector in the reference set of feature vectors stored in association with the identified property with the updated reference feature vector.
 6. The data property recognition apparatus according to claim 3, wherein the executed comparisons are between the output feature vector and each of the stored reference set of feature vectors, and the comparison comprises: comparing a data type of the set of data entries represented by the feature vector from the reference set with a data type of the query set of data entries represented by the output feature vector; if the data types are different, excluding the feature vector from the reference set from mathematical comparison; and if the data types are the same, performing a mathematical comparison between the output feature vector and the feature vector from the reference set to obtain a similarity value, the feature vector for which the greatest similarity value is obtained being the best match feature vector.
 7. The data property recognition apparatus according to claim 1, wherein the set of statistical characteristics for an input set of data entries recognised as being of the numeric type, comprises two or more from among the following: number of data entries; minimum value; maximum value; first quartile value; third quartile value; median value; mean; standard deviation; variance; and most repeated data entry.
 8. The data property recognition apparatus according to claim 1, wherein the set of statistical characteristics for an input set of data entries recognised as being of the string type, comprises two or more from among the following: number of data entries; alphabet of data entries; average number of characters per data entry; average number of white spaces per data entry; average number of full stops per data entry; average number of commas per data entry; average number of semicolons per data entry; most repeated data entry; longest common substring; and percentage of unique entries.
 9. The data property recognition apparatus according to claim 1, wherein the set of statistical characteristics for an input set of data values recognised as being of the numerical time-series type, comprises two or more from among the following: number of data values; number of entries; minimum numerical value; maximum numerical value; first quartile numerical value; third quartile numerical value; median numerical value; mean of numerical values; standard deviation; variance; covariance; skewness; kurtosis; start date; and end date.
 10. The data property recognition apparatus according to claim 1, wherein the plurality of supported data types comprises numeric, string, and numerical time-series.
 11. A data set reconciliation apparatus, comprising: a user interface to accept from a user a specification of a plurality of model sets of data entries from a first data source, and a specification of a plurality of query sets of data entries from further data sources; a data property recognition apparatus according to claim 1, wherein the plurality of model sets of data entries and the plurality of model sets of data entries specified by the user; and a data property reconciliation processor, configured to submit to the storage unit a copy of the first data source, and a copy of each of the further data sources, wherein the query sets of data entries for which a recognised data property was output by the query processor are stored in association with the respective recognised data property.
 12. A method comprising: acquiring a plurality of model sets of data entries, each individual model set of data entries being a plurality of data entries individually representing an identified property common to the model set of data entries and being of a data type common to the model set of data elements; for each of the acquired plurality of model sets of data entries as an input set of data entries, recognising a data type common to the input set of data entries from among plural supported data types, selecting a set of statistical characteristics representing the input set of data entries in dependence upon the recognised data type, generating a value of each of the selected set of statistical characteristics from the plurality of data entries, and outputting a feature vector composed of the generated values of statistical characteristics; for each of the acquired plurality of model sets of data entries, obtaining the output feature vector and submitting to the storage unit the output feature vector in association with the identified property common to the model set of data entries; and storing the submitted feature vectors in association with the respective identified property, as a reference set of feature vectors for comparison with a feature vector generated for a query set of data entries for which an identity of a property commonly represented by the individual data entries is sought.
 13. The method according to claim 12, further comprising: obtaining a query set of data entries for which an identity of a property commonly represented by the individual data entries is sought, recognising a data type common to the query set of data entries from among plural supported data types, selecting one of the sets of statistical characteristics representing input sets of data entries in dependence upon the recognised data type of the query set of data entries, generating a value of each of the selected set of statistical characteristics from the query set of data entries, and outputting a feature vector composed of the generated values of statistical characteristics, the plural supported data types comprising numbers, strings, and numerical time-series; executing comparisons between the feature vector output for the query set of data entries and the stored reference set of feature vectors to identify a best match feature vector among the stored reference set of feature vectors for the feature vector output for the query set of data entries, recognising the identified property stored in association with the best match feature vector as a recognised data property represented by the individual data entries in the query set of data entries, and outputting the recognised data property.
 14. A computer program which, when executed by a computing apparatus, causes the computing apparatus to perform a method comprising: acquiring a plurality of model sets of data entries, each individual model set of data entries being a plurality of data entries individually representing an identified property common to the model set of data entries and being of a data type common to the model set of data elements; for each of the acquired plurality of model sets of data entries as an input set of data entries, recognising a data type common to the input set of data entries from among plural supported data types, selecting a set of statistical characteristics representing the input set of data entries in dependence upon the recognised data type, generating a value of each of the selected set of statistical characteristics from the plurality of data entries, and outputting a feature vector composed of the generated values of statistical characteristics; for each of the acquired plurality of model sets of data entries, obtaining the output feature vector and submitting to the storage unit the output feature vector in association with the identified property common to the model set of data entries; and storing the submitted feature vectors in association with the respective identified property, as a reference set of feature vectors for comparison with a feature vector generated for a query set of data entries for which an identity of a property commonly represented by the individual data entries is sought.
 15. The computer program according to claim 14, wherein the method performed by the computing apparatus further comprises: obtaining a query set of data entries for which an identity of a property commonly represented by the individual data entries is sought, recognising a data type common to the query set of data entries from among plural supported data types, selecting one of the sets of statistical characteristics representing input sets of data entries in dependence upon the recognised data type of the query set of data entries, generating a value of each of the selected set of statistical characteristics from the query set of data entries, and outputting a feature vector composed of the generated values of statistical characteristics, the plural supported data types comprising numbers, strings, and numerical time-series; executing comparisons between the feature vector output for the query set of data entries and the stored reference set of feature vectors to identify a best match feature vector among the stored reference set of feature vectors for the feature vector output for the query set of data entries, recognising the identified property stored in association with the best match feature vector as a recognised data property represented by the individual data entries in the query set of data entries, and outputting the recognised data property.
 16. A computer-readable medium storing the computer program according to claim
 15. 17. A computer-readable medium according to claim 16, wherein the computer-readable medium is non-transitory. 